export interface Menu {
  id: string
  /** 菜单对应的组件路径 */
  path: string
  /** 重定向 */
  redirect?: string
  /** 路由路径 */
  route: string
  /** 组件名字 */
  name?: string
  /** 菜单的父级 */
  pid: string | null
  /** 菜单的排序信息 */
  sort: number
  /** 菜单类型 */
  menuType: string
  /** 菜单的额外信息 */
  meta: PageMeta
  /** 子菜单 */
  child?: Menu[]
  /** 组件 */
  component: string
  /** 是否显示到菜单上 */
  isMenu: boolean
  /** 是否添加到路由 */
  isRoute: boolean
  del: boolean
}

/** 菜单的额外信息 */
export interface PageMeta {
  /** 唯一标识 */
  id: string
  /** 页面标题 */
  title?: string
  /** 图标 */
  svgIcon?: string
  /** 角色，主要是在前端对用户拥有的菜单进行识别 */
  roles?: string[]
  /** 是否隐藏 */
  hidden?: boolean
  /** 始终显示根菜单 */
  alwaysShow: boolean
  /** 不知道 */
  affix: boolean
}

export type MenuInfo = ApiResponseData<Menu[] | null>
